CSSã³ã³ããã¯ãšãªã®ãµã€ãºèšç®ãæ·±ãæãäžããã³ã³ããã®å¯žæ³ãã©ã®ããã«ç®åºããããã解説ã倿§ãªããã€ã¹ãšã³ã³ããã¹ãã«å¯Ÿå¿ããã¬ã¹ãã³ã·ãWebãã¶ã€ã³ã®å®è·µäŸãæäŸããŸãã
CSSã³ã³ããã¯ãšãªã®ãµã€ãºèšç®: ã³ã³ããã®å¯žæ³ç®åº
ã³ã³ããã¯ãšãªã¯ãèŠçŽ ããã¥ãŒããŒãã§ã¯ãªããã®ã³ã³ããã®ãµã€ãºã«åºã¥ããŠé©å¿ã§ããããã«ããããšã§ãã¬ã¹ãã³ã·ãWebãã¶ã€ã³ã«é©åœããããããŠããŸãããã®æ©èœã®åã广çã«æŽ»çšããããã«ã¯ãã³ã³ããã®å¯žæ³ãã©ã®ããã«èšç®ãããããçè§£ããããšãéèŠã§ãããã®å æ¬çãªã¬ã€ãã§ã¯ãã³ã³ããã®ãµã€ãºèšç®ã®è€éããæ¢æ±ããã°ããŒãã«ãªç¶æ³ã§é©çšå¯èœãªå®è·µçãªäŸãæäŸããŸãã
ã³ã³ããã¯ãšãªãšã¯ïŒç°¡åãªèŠç¹
åŸæ¥ã®ã¡ãã£ã¢ã¯ãšãªã¯ããã¥ãŒããŒãã®ãµã€ãºã«äŸåããŠé©çšããã¹ã¿ã€ã«ã決å®ããŸããäžæ¹ãã³ã³ããã¯ãšãªã¯ãç¹å®ã®ç¥å èŠçŽ ã§ããã³ã³ããã®å¯žæ³ã«åºã¥ããŠã¹ã¿ã€ã«ãé©çšã§ããŸããããã«ããããã詳现ã§ã³ã³ããã¹ããæèããã¬ã¹ãã³ã·ããªåäœãå¯èœã«ãªããç¹ã«å€§èŠæš¡ãªã¬ã€ã¢ãŠãå ã§åå©çšå¯èœãªã³ã³ããŒãã³ãã«åœ¹ç«ã¡ãŸãã
ã«ãŒãã³ã³ããŒãã³ããããã·ããªãªãèããŠã¿ãŸããããã¡ãã£ã¢ã¯ãšãªã§ã¯ãã«ãŒãã®è¡šç€ºã¯ãã¥ãŒããŒãã®å¹ ã«åºã¥ããŠå€åããŸããã³ã³ããã¯ãšãªã§ã¯ãã«ãŒãã®è¡šç€ºã¯ãå šäœã®ãã¥ãŒããŒããµã€ãºã«é¢ä¿ãªãããã®å éšã«ããã³ã³ããã®å¹ ã«åºã¥ããŠå€åããŸããããã«ãããã³ã³ããŒãã³ãã¯ããŸããŸãªã¬ã€ã¢ãŠãã§ããæè»ãã€åå©çšå¯èœã«ãªããŸãã
ã³ã³ããã®ã³ã³ããã¹ããå®çŸ©ãã
ãµã€ãºèšç®ã«å
¥ãåã«ãã³ã³ããã®ã³ã³ããã¹ãã確ç«ããæ¹æ³ãçè§£ããããšãäžå¯æ¬ ã§ããããã¯container-typeãšcontainer-nameããããã£ã䜿çšããŠè¡ãããŸãã
container-type
container-typeããããã£ã¯ãã³ã³ããåã®çš®é¡ãå®çŸ©ããŸãã以äžã®å€ãåãããšãã§ããŸãã
size: ãµã€ãºã³ã³ããåã確ç«ããŸããã³ã³ããã®ã€ã³ã©ã€ã³ãµã€ãºïŒæ°Žå¹³æžã蟌ã¿ã¢ãŒãã§ã¯å¹ ãåçŽæžã蟌ã¿ã¢ãŒãã§ã¯é«ãïŒãã³ã³ããã¯ãšãªã®åºæºãšãªããŸããããã¯ãµã€ãºã«åºã¥ããèšç®ã«ãããŠæãäžè¬çã§é¢é£æ§ã®é«ãã¿ã€ãã§ããinline-size:sizeãšåçã§ãæç€ºçã«ã€ã³ã©ã€ã³ãµã€ãºã³ã³ããåãæå®ããŸããlayout: ã¬ã€ã¢ãŠãã³ã³ããåã確ç«ããŸããã³ã³ããã¯æ°ãããã©ãŒãããã³ã³ããã¹ããäœæããåå«ãåšå²ã®ã¬ã€ã¢ãŠãã«åœ±é¿ãäžããã®ãé²ããŸããããã¯ãµã€ãºèšç®ã«çŽæ¥åœ±é¿ããŸããããã³ã³ããã«å©çšå¯èœãªã¹ããŒã¹ã«åœ±é¿ãäžããå¯èœæ§ããããŸããstyle: ã¹ã¿ã€ã«ã³ã³ããåã確ç«ããŸããã³ã³ããã®ããããã£ã®å€æŽãå€éšã®ã¹ã¿ã€ã«ã«åœ±é¿ãäžããããšã¯ãããŸãããlayoutãšåæ§ã«ãããã¯ãµã€ãºèšç®ã«çŽæ¥åœ±é¿ããŸãããpaint: ãã€ã³ãã³ã³ããåã確ç«ããŸããã³ã³ããã¯ã¹ã¿ããã³ã°ã³ã³ããã¹ããäœæããåå«ããã®å¢çå€ã«æç»ãããã®ãé²ããŸããããããµã€ãºèšç®èªäœã«ã¯çŽæ¥é¢ä¿ãããŸãããcontent: ã¬ã€ã¢ãŠããã¹ã¿ã€ã«ãããã³ãã€ã³ãã®ã³ã³ããåã確ç«ããŸããnormal: ãã®èŠçŽ ã¯ã³ã³ããã§ã¯ãããŸããã
ãµã€ãºèšç®ã«çŠç¹ãåœãŠããããäž»ã«container-type: size;ããã³container-type: inline-size;ã䜿çšããŸãã
container-name
container-nameããããã£ã¯ã³ã³ããã«ååãå²ãåœãŠãŸããããã«ãããã³ã³ããã¯ãšãªãäœæããéã«ç¹å®ã®ã³ã³ãããã¿ãŒã²ããã«ããããšãã§ããŸããããã¯ç¹ã«ããŒãžäžã«è€æ°ã®ã³ã³ãããããå Žåã«äŸ¿å©ã§ãã
äŸ:
.card-container {
container-type: size;
container-name: card;
}
@container card (min-width: 300px) {
.card-content {
font-size: 1.2em;
}
}
ãã®äŸã§ã¯ã.card-containerèŠçŽ ã¯ãcardããšããååã®ãµã€ãºã³ã³ãããšããŠå®çŸ©ãããŠããŸããã³ã³ããã¯ãšãªã¯ããã®ç¹å®ã®ã³ã³ãããã¿ãŒã²ããã«ããã³ã³ããã®å¹
ã300px以äžã®å Žåã«.card-contentã«ã¹ã¿ã€ã«ãé©çšããŸãã
ã³ã³ããã®å¯žæ³ç®åº: æ žãšãªãåå
ã³ã³ããã¯ãšãªã®ãµã€ãºèšç®ã®æ ¹åºã«ããååã¯ãã³ã³ããã¯ãšãªã®è©äŸ¡ã«äœ¿çšããã寞æ³ããã³ã³ããã®ã³ã³ãã³ãããã¯ã¹ã®å¯žæ³ã§ãããšããããšã§ããããã¯æ¬¡ã®ããšãæå³ããŸãã
- 䜿çšãããå¹ ã¯ãããã£ã³ã°ãããŒããŒãããŒãžã³ãé€ãããã³ã³ããå ã®ã³ã³ãã³ãé åã®å¹ ã§ãã
- 䜿çšãããé«ãã¯ãããã£ã³ã°ãããŒããŒãããŒãžã³ãé€ãããã³ã³ããå ã®ã³ã³ãã³ãé åã®é«ãã§ãã
ã³ã³ããã®ãµã€ãºã«åœ±é¿ãäžããå¯èœæ§ã®ããç°ãªãCSSããããã£ã§ããããã©ã®ããã«æ©èœãããã詳ããèŠãŠãããŸãããã
1. æç€ºçãªå¹ ãšé«ã
ã³ã³ãããæç€ºçã«å®çŸ©ãããwidthãŸãã¯heightãæã£ãŠããå Žåããããã®å€ïŒããã¯ã¹ãµã€ãžã³ã°ãèæ
®ããåŸïŒã¯ã³ã³ãã³ãããã¯ã¹ã®å¯žæ³ã«çŽæ¥åœ±é¿ãäžããŸãã
äŸ:
.container {
width: 500px;
padding: 20px;
border: 5px solid black;
box-sizing: border-box;
container-type: size;
}
ãã®å Žåãbox-sizing: border-box;ãèšå®ãããŠãããããã³ã³ããã®åèšå¹
ïŒããã£ã³ã°ãšããŒããŒãå«ãïŒã¯500pxã§ããã³ã³ããã¯ãšãªã«äœ¿çšãããã³ã³ãã³ãããã¯ã¹ã®å¹
ã¯ã次ã®ããã«èšç®ãããŸãã
ã³ã³ãã³ãããã¯ã¹ã®å¹ = width - padding-left - padding-right - border-left - border-right
ã³ã³ãã³ãããã¯ã¹ã®å¹ = 500px - 20px - 20px - 5px - 5px = 450px
ãããã£ãŠãã³ã³ããã¯ãšãªã¯450pxã®å¹ ã«åºã¥ããŠè©äŸ¡ãããŸãã
代ããã«box-sizing: content-box;ãèšå®ãããŠããå ŽåïŒããã¯ããã©ã«ãã§ãïŒãã³ã³ãã³ãããã¯ã¹ã®å¹
ã¯500pxã«ãªããã³ã³ããã®åèšå¹
ã¯550pxã«ãªããŸãã
2. èªåå¹ ãšé«ã
ã³ã³ããã®å¹
ãŸãã¯é«ããautoã«èšå®ãããŠããå Žåããã©ãŠã¶ã¯ã³ã³ãã³ããšå©çšå¯èœãªã¹ããŒã¹ã«åºã¥ããŠå¯žæ³ãèšç®ããŸãããã®èšç®ã¯ãã³ã³ããã®è¡šç€ºã¿ã€ãïŒäŸïŒãããã¯ãã€ã³ã©ã€ã³ãããã¯ããã¬ãã¯ã¹ãã°ãªããïŒããã³ãã®èŠªã®ã¬ã€ã¢ãŠãã«å¿ããŠãããè€éã«ãªãããšããããŸãã
ãããã¯ã¬ãã«èŠçŽ : width: auto;ãæã€ãããã¯ã¬ãã«èŠçŽ ã®å Žåãå¹
ã¯éåžžã芪ã³ã³ããå
ã®å©çšå¯èœãªæ°Žå¹³ã¹ããŒã¹ïŒããŒãžã³ãé€ãïŒãåããããã«æ¡åŒµãããŸããé«ãã¯ãèŠçŽ å
ã®ã³ã³ãã³ãã«ãã£ãŠæ±ºå®ãããŸãã
ã€ã³ã©ã€ã³ãããã¯èŠçŽ : width: auto;ããã³height: auto;ãæã€ã€ã³ã©ã€ã³ãããã¯èŠçŽ ã®å Žåã寞æ³ã¯ã³ã³ãã³ãã«ãã£ãŠæ±ºå®ãããŸããèŠçŽ ã¯ã³ã³ãã³ãã«åãããŠçž®å°ããŸãã
Flexboxããã³Gridã³ã³ãã: Flexboxããã³Gridã³ã³ããã¯ãããæŽç·Žãããã¬ã€ã¢ãŠãã¢ã«ãŽãªãºã ãæã£ãŠããŸããåèŠçŽ ã®å¯žæ³ã¯ãflex-growãflex-shrinkãgrid-template-columnsãããã³grid-template-rowsãªã©ã®ããããã£ãšãšãã«ãã³ã³ããã®ãµã€ãºã«åœ±é¿ãäžããŸãã
äŸïŒFlexboxã«ããèªåå¹ ïŒ:
.container {
display: flex;
flex-direction: row;
width: auto;
container-type: size;
}
.item {
flex: 1;
min-width: 100px;
}
ãã®äŸã§ã¯ã.containerã¯width: auto;ãæã£ãŠããŸãããã®å¹
ã¯ãå©çšå¯èœãªã¹ããŒã¹ãšåèŠçŽ ã®flexããããã£ã«ãã£ãŠæ±ºå®ãããŸãã芪ã³ã³ããã®å¹
ã600pxã§ã2ã€ã®.itemèŠçŽ ãããããflex: 1;ããã³min-width: 100px;ãæã£ãŠããå Žåãã³ã³ããã®å¹
ã¯ïŒã³ã³ããèªäœã®ããã£ã³ã°/ããŒããŒãé€ããŠïŒ600pxã«ãªãå¯èœæ§ãé«ãã§ãã
3. æå°å¹ ãšæå€§å¹
min-widthãšmax-widthããããã£ã¯ãã³ã³ããã®å¹
ãå¶çŽããŸããå®éã®å¹
ã¯ãéåžžã®å¹
èšç®ã®çµæãmin-widthãšmax-widthã®å€ã®éã§ã¯ã©ã³ãããããã®ã«ãªããŸãã
äŸ:
.container {
width: auto;
min-width: 300px;
max-width: 800px;
container-type: size;
}
ãã®å Žåãã³ã³ããã®å¹ ã¯å©çšå¯èœãªã¹ããŒã¹ãåããããã«æ¡åŒµãããŸããã300pxããå°ãããªãããšãã800pxãã倧ãããªãããšããããŸãããã³ã³ããã¯ãšãªã¯ããã®ã¯ã©ã³ããããå¹ ã«åºã¥ããŠè©äŸ¡ãããŸãã
4. ããŒã»ã³ããŒãžå¹
ã³ã³ãããããŒã»ã³ããŒãžå¹ ãæã€å Žåãå¹ ã¯ãã®å å«ãããã¯ã®å¹ ã«å¯ŸããããŒã»ã³ããŒãžãšããŠèšç®ãããŸããããã¯ã¬ã¹ãã³ã·ããªã¬ã€ã¢ãŠããäœæããããã®äžè¬çãªææ³ã§ãã
äŸ:
.container {
width: 80%;
container-type: size;
}
å å«ãããã¯ã®å¹ ã1000pxã®å Žåãã³ã³ããã®å¹ ã¯800pxã«ãªããŸããã³ã³ããã¯ãšãªã¯ããã®èšç®ãããå¹ ã«åºã¥ããŠè©äŸ¡ãããŸãã
5. contain ããããã£
containããããã£ã¯ã*ãµã€ãº*èšç®èªäœã«çŽæ¥åœ±é¿ãäžããããã§ã¯ãããŸããããã³ã³ãããšãã®åå«ã®ã¬ã€ã¢ãŠããšã¬ã³ããªã³ã°ã«å€§ãã圱é¿ããŸããcontain: layout;ãcontain: paint;ããŸãã¯contain: content;ã䜿çšãããšãã³ã³ãããšãã®åèŠçŽ ãéé¢ããããã©ãŒãã³ã¹ãšäºæž¬å¯èœæ§ãåäžãããå¯èœæ§ããããŸãããã®éé¢ã¯ãã³ã³ããã«å©çšå¯èœãªã¹ããŒã¹ã«éæ¥çã«åœ±é¿ãäžããå¹
ãŸãã¯é«ãã`auto`ã«èšå®ãããŠããå Žåã«ãã®æçµçãªãµã€ãºã«åœ±é¿ãäžããããšããããŸãã
ããå ·äœçãª`contain`å€ããã§ã«èšå®ãããŠããªãå Žåã`container-type`ãæé»çã«`contain: size;`ãèšå®ããããšã«æ³šæããããšãéèŠã§ããããã«ãããã³ã³ããã®ãµã€ãºããã®èŠªããã³å åŒããç¬ç«ããã³ã³ããã¯ãšãªãä¿¡é Œã§ãããã®ã«ãªããŸãã
ç°ãªãã¬ã€ã¢ãŠãã«ãããå®è·µäŸ
ããŸããŸãªã¬ã€ã¢ãŠãã·ããªãªã§ã³ã³ããã¯ãšãªã®ãµã€ãºèšç®ãã©ã®ããã«æ©èœããããããã€ãã®å®è·µäŸãèŠãŠãããŸãããã
äŸ1: ã°ãªããã¬ã€ã¢ãŠãå ã®ã«ãŒãã³ã³ããŒãã³ã
ã°ãªããã¬ã€ã¢ãŠãå ã«è¡šç€ºãããã«ãŒãã³ã³ããŒãã³ããæ³åããŠãã ãããã«ãŒãã®è¡šç€ºãã°ãªããå ã§ã®å¹ ã«åºã¥ããŠé©å¿ããããã«ããããšããŸãã
.grid-container {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 20px;
}
.card {
container-type: size;
padding: 15px;
border: 1px solid #ccc;
}
.card h2 {
font-size: 1.2em;
}
@container (max-width: 350px) {
.card h2 {
font-size: 1em;
}
}
ãã®äŸã§ã¯ã.grid-containerãã¬ã¹ãã³ã·ããªã°ãªããã¬ã€ã¢ãŠããäœæããŸãã.cardèŠçŽ ã¯ãµã€ãºã³ã³ããã§ããã³ã³ããã¯ãšãªã¯ãã«ãŒãã®å¹
ã350px以äžã§ãããã©ããããã§ãã¯ããŸããããããã§ããã°ãã«ãŒãå
ã®h2èŠçŽ ã®ãã©ã³ããµã€ãºãçž®å°ãããŸããããã«ãããã«ãŒãã¯ã°ãªããå
ã®å©çšå¯èœãªã¹ããŒã¹ã«åºã¥ããŠã³ã³ãã³ããé©å¿ãããããšãã§ããŸãã
äŸ2: ãµã€ãããŒããã²ãŒã·ã§ã³
å©çšå¯èœãªå¹ ã«åºã¥ããŠã¬ã€ã¢ãŠããé©å¿ãããå¿ èŠããããµã€ãããŒããã²ãŒã·ã§ã³ã³ã³ããŒãã³ããèããŠã¿ãŸãããã
.sidebar {
width: 250px;
container-type: size;
background-color: #f0f0f0;
padding: 10px;
}
.sidebar ul {
list-style: none;
padding: 0;
}
.sidebar li {
margin-bottom: 5px;
}
.sidebar a {
display: block;
padding: 8px;
text-decoration: none;
color: #333;
}
@container (max-width: 200px) {
.sidebar a {
text-align: center;
padding: 5px;
}
}
ãã®äŸã§ã¯ã.sidebarã¯åºå®å¹
250pxã®ãµã€ãºã³ã³ããã§ããã³ã³ããã¯ãšãªã¯ããµã€ãããŒã®å¹
ã200px以äžã§ãããã©ããããã§ãã¯ããŸããããããã§ããã°ããµã€ãããŒå
ã®ãªã³ã¯ã®ããã¹ãé
眮ãäžå€®ã«å€ãããããã£ã³ã°ãçž®å°ãããŸããããã¯ããµã€ãããŒãããå°ããªç»é¢ãçãã¬ã€ã¢ãŠãã«é©å¿ãããã®ã«åœ¹ç«ã¡ãŸãã
äŸ3: ç»åãµã€ãºã®é©å¿
ã³ã³ããã¯ãšãªã¯ãã³ã³ããå ã®ç»åãµã€ãºãé©å¿ãããããã«ã䜿çšã§ããŸãã
.image-container {
width: 400px;
container-type: size;
}
.image-container img {
width: 100%;
height: auto;
}
@container (max-width: 300px) {
.image-container img {
max-height: 200px;
object-fit: cover;
}
}
ããã§ã¯ã.image-containerããµã€ãºã³ã³ããã§ããã³ã³ããã¯ãšãªã¯ãã³ã³ããã®å¹
ã300px以äžã§ãããã©ããããã§ãã¯ããŸããããããã§ããã°ãç»åã®max-heightã200pxã«èšå®ãããobject-fit: cover;ãé©çšãããŠãç»åãã¢ã¹ãã¯ãæ¯ãæªããããšãªãå©çšå¯èœãªã¹ããŒã¹ãåããããã«ããŸããããã«ãããããŸããŸãªãµã€ãºã®ã³ã³ããå
ã§ç»åãã©ã®ããã«è¡šç€ºãããããå¶åŸ¡ã§ããŸãã
ãšããžã±ãŒã¹ãšæœåšçãªèœãšã穎ãžã®å¯ŸåŠ
ã³ã³ããã¯ãšãªã¯åŒ·åã§ãããæœåšçãªåé¡ããšããžã±ãŒã¹ã«æ³šæããããšãéèŠã§ãã
1. 埪ç°äŸåæ§
ã³ã³ããã¯ãšãªãèªèº«ã®ã³ã³ããã®ãµã€ãºã«åœ±é¿ãäžãããããªåŸªç°äŸåæ§ã®äœæã¯é¿ããŠãã ãããããã¯ç¡éã«ãŒããäºæããªãåäœã«ã€ãªããå¯èœæ§ããããŸãããã©ãŠã¶ã¯ãããã®ã«ãŒããäžæããããšããŸãããçµæã¯äºæž¬ã§ããªãå ŽåããããŸãã
2. ããã©ãŒãã³ã¹ã«é¢ããèæ ®äºé
ã³ã³ããã¯ãšãªã®é床ãªäœ¿çšãç¹ã«è€éãªèšç®ã䌎ãå Žåãããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ããããŸããCSSãæé©åããäžå¿ èŠãªã³ã³ããã¯ãšãªãé¿ããŠãã ããããã©ãŠã¶ã®éçºè ããŒã«ã䜿çšããŠããã©ãŒãã³ã¹ãç£èŠããæœåšçãªããã«ããã¯ãç¹å®ããŠãã ããã
3. ã³ã³ããã®ãã¹ã
ã³ã³ããããã¹ãããå Žåãã¯ãšãªãã©ã®ã³ã³ãããã¿ãŒã²ããã«ããŠãããã«æ³šæããŠãã ãããæå³ããªãå¯äœçšãé¿ããããã«ãcontainer-nameã䜿çšããŠã¿ãŒã²ããã³ã³ãããæç€ºçã«æå®ããŠãã ããããŸããã³ã³ããã¯ãšãªã¯ã³ã³ããã®çŽäžã®åèŠçŽ ã«ã®ã¿é©çšãããDOMããªãŒã®ããã«äžã®åå«ã«ã¯é©çšãããªãããšãèŠããŠãããŠãã ããã
4. ãã©ãŠã¶äºææ§
ã³ã³ããã¯ãšãªã«å€§ããäŸåããåã«ããã©ãŠã¶ã®äºææ§ã確èªããŠãã ããããµããŒãã¯æ¥éã«æ¡å€§ããŠããŸãããå€ããã©ãŠã¶ã§ã¯ãµããŒããããŠããªãå ŽåããããŸããå€ããã©ãŠã¶åãã«ããªãã£ã«ã䜿çšãããããã©ãŒã«ããã¯ã¹ã¿ã€ã«ãæäŸãããããããšãæ€èšããŠãã ããã
5. åçãªã³ã³ãã³ã
ã³ã³ããå ã®ã³ã³ãã³ããåçã«å€åããå ŽåïŒäŸïŒJavaScriptçµç±ïŒãã³ã³ããã®ãµã€ãºãå€åããã³ã³ããã¯ãšãªãããªã¬ãŒãããå¯èœæ§ããããŸããJavaScriptã³ãŒãããããã®å€æŽãé©åã«åŠçããããã«å¿ããŠã¬ã€ã¢ãŠããæŽæ°ããããã«ããŠãã ãããã³ã³ããã³ã³ãã³ãã®å€æŽãæ€åºããã³ã³ããã¯ãšãªã®åè©äŸ¡ãããªã¬ãŒããããã«MutationObserverã®äœ¿çšãæ€èšããŠãã ããã
ã³ã³ããã¯ãšãªã«é¢ããã°ããŒãã«ãªèæ ®äºé
ã°ããŒãã«ãªã³ã³ããã¹ãã§ã³ã³ããã¯ãšãªã䜿çšããå Žåã以äžã®ç¹ãèæ ®ããŠãã ããã
- ããã¹ãã®æ¹å (RTL/LTR): ã³ã³ããã¯ãšãªã¯äž»ã«ã³ã³ããã®ã€ã³ã©ã€ã³ãµã€ãºã§æ©èœããŸããã¹ã¿ã€ã«ãå·Šããå³ (LTR) ããã³å³ããå·Š (RTL) ã®äž¡æ¹ã®ããã¹ãæ¹åãšäºææ§ãããããšã確èªããŠãã ããã
- åœéå (i18n): èšèªã«ãã£ãŠããã¹ãã®é·ããç°ãªãå Žåããããã³ã³ããå ã®ã³ã³ãã³ãã®ãµã€ãºã«åœ±é¿ãäžããå¯èœæ§ããããŸããã³ã³ããã¯ãšãªãç°ãªãèšèªã§ãã¹ãããæ£ããé©å¿ããããšã確èªããŠãã ããã
- ãã©ã³ãã®èªã¿èŸŒã¿: ãã©ã³ãã®èªã¿èŸŒã¿ã¯ãã³ã³ããã³ã³ãã³ãã®åæãµã€ãºã«åœ±é¿ãäžããå¯èœæ§ããããŸãããã©ã³ãã®èªã¿èŸŒã¿äžã«ã¬ã€ã¢ãŠãã·ãããé¿ããããã«ãfont-display: swap; ã®äœ¿çšãæ€èšããŠãã ããã
- ã¢ã¯ã»ã·ããªãã£: ã³ã³ããã¯ãšãªã«åºã¥ããé©å¿ãã¢ã¯ã»ã·ããªãã£ãç¶æããããšã確èªããŠãã ãããããšãã°ãèŠèŠé害ã®ãããŠãŒã¶ãŒã«ãšã£ãŠèªã¿ã«ãããªãã»ã©ãã©ã³ããµã€ãºãçž®å°ããªãã§ãã ãããåžžã«ã¢ã¯ã»ã·ããªãã£ããŒã«ãæ¯æŽæè¡ã§ãã¹ãããŠãã ããã
ã³ã³ããã¯ãšãªã®ãããã°
ã³ã³ããã¯ãšãªã®ãããã°ã¯ãæã«è€éã«ãªãããšããããŸãã以äžã«åœ¹ç«ã€ãã³ããããã€ã玹ä»ããŸãã
- ãã©ãŠã¶éçºè ããŒã«ã®äœ¿çš: ã»ãšãã©ã®ã¢ãã³ãã©ãŠã¶ã¯ãCSSãæ€æ»ããããã®åªããéçºè ããŒã«ãæäŸããŠããŸãããããã®ããŒã«ã䜿çšããŠèŠçŽ ã®èšç®æžã¿ã¹ã¿ã€ã«ã調ã¹ãã³ã³ããã¯ãšãªãæ£ããé©çšãããŠããããšã確èªããŠãã ããã
- ã³ã³ãã寞æ³ã®æ€æ»: éçºè ããŒã«ã䜿çšããŠã³ã³ããã®ã³ã³ãã³ãããã¯ã¹ã®å¯žæ³ãæ€æ»ããŠãã ãããããã«ãããç¹å®ã®ã³ã³ããã¯ãšãªãããªã¬ãŒãããŠããçç±ãããªã¬ãŒãããŠããªãçç±ãçè§£ããã®ã«åœ¹ç«ã¡ãŸãã
- èŠèŠçãªæãããã®è¿œå : äžæçã«ã³ã³ãããšãã®åèŠçŽ ã«èŠèŠçãªæãããïŒäŸïŒããŒããŒãèæ¯è²ïŒã远å ããŠãã¬ã€ã¢ãŠããèŠèŠåããåé¡ãç¹å®ããã®ã«åœ¹ç«ãŠãŠãã ããã
- ã³ã³ãœãŒã«ãã®ã³ã°ã®äœ¿çš: JavaScriptã³ãŒãã§
console.log()ã¹ããŒãã¡ã³ãã䜿çšããŠãã³ã³ããã®å¯žæ³ãšé¢é£ããCSSããããã£ã®å€ããã°ã«èšé²ããŠãã ãããããã«ãããäºæããªãåäœã远跡ããã®ã«åœ¹ç«ã¡ãŸãã - ã³ãŒãã®ç°¡çŽ å: è€éãªã³ã³ããã¯ãšãªèšå®ã®ãããã°ã«åé¡ãããå Žåã¯ãäžèŠãªèŠçŽ ãã¹ã¿ã€ã«ãåé€ããŠã³ãŒããç°¡çŽ åããŠã¿ãŠãã ãããããã«ãããåé¡ãåãåããã®ã«åœ¹ç«ã¡ãŸãã
ã³ã³ããã¯ãšãªã®æªæ¥
ã³ã³ããã¯ãšãªã¯ãŸã æ¯èŒçæ°ããæ©èœã§ããããã®æ©èœã¯å°æ¥çã«æ¡å€§ããå¯èœæ§ããããŸãããã©ãŠã¶ãµããŒãã®æ¹åãããæŽç·Žãããã¯ãšãªæ¡ä»¶ãããã³ä»ã®CSSæ©èœãšã®ããç·å¯ãªçµ±åãæåŸ ãããŸãã
çµè«
ã³ã³ããã¯ãšãªã®ãµã€ãºèšç®ãçè§£ããããšã¯ãçã«ã¬ã¹ãã³ã·ãã§é©å¿æ§ã®é«ãWebãã¶ã€ã³ãäœæããããã«äžå¯æ¬ ã§ããã³ã³ãã寞æ³ã®ååãç¿åŸããæœåšçãªèœãšã穎ãèæ ®ããããšã§ãã³ã³ããã¯ãšãªã®åãæŽ»çšããŠãã°ããŒãã«ãªãªãŒãã£ãšã³ã¹ã«å¯Ÿå¿ãããããæè»ã§ä¿å®ããããããŠãŒã¶ãŒãã¬ã³ããªãŒãªWebãµã€ããæ§ç¯ã§ããŸããã³ã³ããã¹ãèªèåã¹ã¿ã€ãªã³ã°ã®åãæŽ»çšããã³ã³ããã¯ãšãªã§ã¬ã¹ãã³ã·ããã¶ã€ã³ã®æ°ããªã¬ãã«ãè§£ãæŸã¡ãŸãããã